package com.redepronik.negosys.invfac.entity;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * The persistent class for the unidad database table.
 * 
 */
@Entity
@Table(schema = "invfac", name = "unidad")
@NamedQuery(name = "Unidad.findAll", query = "SELECT u FROM Unidad u")
public class Unidad implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(allocationSize = 1, name = "UNIDAD_UNIDADID_GENERATOR", sequenceName = "INVFAC.UNIDAD_UNIDADID_SEQ")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "UNIDAD_UNIDADID_GENERATOR")
	@Column(unique = true, nullable = false)
	private Integer unidadid;

	@Column(nullable = false, length = 2)
	private String abreviatura;

	@Column(nullable = false)
	private Boolean activo;

	@Column(nullable = false, length = 50)
	private String nombre;

	@Column(nullable = false)
	private Boolean pordefecto;

	// bi-directional many-to-one association to Productounidad
	@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL, mappedBy = "unidad")
	private List<Productounidad> productounidads;

	public Unidad() {
	}

	public Productounidad addProductounidad(Productounidad productounidad) {
		getProductounidads().add(productounidad);
		productounidad.setUnidad(this);

		return productounidad;
	}

	public String getAbreviatura() {
		return this.abreviatura;
	}

	public Boolean getActivo() {
		return this.activo;
	}

	public String getNombre() {
		return this.nombre;
	}

	public Boolean getPordefecto() {
		return this.pordefecto;
	}

	public List<Productounidad> getProductounidads() {
		return this.productounidads;
	}

	public Integer getUnidadid() {
		return this.unidadid;
	}

	public Productounidad removeProductounidad(Productounidad productounidad) {
		getProductounidads().remove(productounidad);
		productounidad.setUnidad(null);

		return productounidad;
	}

	public void setAbreviatura(String abreviatura) {
		this.abreviatura = abreviatura;
	}

	public void setActivo(Boolean activo) {
		this.activo = activo;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public void setPordefecto(Boolean pordefecto) {
		this.pordefecto = pordefecto;
	}

	public void setProductounidads(List<Productounidad> productounidads) {
		this.productounidads = productounidads;
	}

	public void setUnidadid(Integer unidadid) {
		this.unidadid = unidadid;
	}

}